package br.com.jbssistemas.dirfweb.entidades;

import java.io.Serializable;
import java.util.Objects;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

/**
 *
 * @author Renato Machado
 *
 */
@Entity
@Table(name = "dirf_itens")
public class DirfItem implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;

    private String anoExercicio;

    private String anoCalendario;

    private String sigla;

    @ManyToOne
    @JoinColumn(name = "beneficiario_id")
    private Beneficiario beneficiario;

    @ManyToOne
    @JoinColumn(name = "retencao_id")
    private Retencao retencao;

    /**
     * Valores de Rendimentos RTRT
     */
    @Column(nullable = false)
    private Double valorRendimentoJAN = 0.0;
    @Column(nullable = false)
    private Double valorRendimentoFEV = 0.0;
    @Column(nullable = false)
    private Double valorRendimentoMAR = 0.0;
    @Column(nullable = false)
    private Double valorRendimentoABR = 0.0;
    @Column(nullable = false)
    private Double valorRendimentoMAI = 0.0;
    @Column(nullable = false)
    private Double valorRendimentoJUN = 0.0;
    @Column(nullable = false)
    private Double valorRendimentoJUL = 0.0;
    @Column(nullable = false)
    private Double valorRendimentoAGO = 0.0;
    @Column(nullable = false)
    private Double valorRendimentoSET = 0.0;
    @Column(nullable = false)
    private Double valorRendimentoOUT = 0.0;
    @Column(nullable = false)
    private Double valorRendimentoNOV = 0.0;
    @Column(nullable = false)
    private Double valorRendimentoDEZ = 0.0;
    @Column(nullable = false)
    private Double valorRendimentoDEC = 0.0;

    /**
     * Valores de Previdencia Oficial RTPO
     */
    @Column(nullable = false)
    private Double valorPrevOficialJAN = 0.0;
    @Column(nullable = false)
    private Double valorPrevOficialFEV = 0.0;
    @Column(nullable = false)
    private Double valorPrevOficialMAR = 0.0;
    @Column(nullable = false)
    private Double valorPrevOficialABR = 0.0;
    @Column(nullable = false)
    private Double valorPrevOficialMAI = 0.0;
    @Column(nullable = false)
    private Double valorPrevOficialJUN = 0.0;
    @Column(nullable = false)
    private Double valorPrevOficialJUL = 0.0;
    @Column(nullable = false)
    private Double valorPrevOficialAGO = 0.0;
    @Column(nullable = false)
    private Double valorPrevOficialSET = 0.0;
    @Column(nullable = false)
    private Double valorPrevOficialOUT = 0.0;
    @Column(nullable = false)
    private Double valorPrevOficialNOV = 0.0;
    @Column(nullable = false)
    private Double valorPrevOficialDEZ = 0.0;
    @Column(nullable = false)
    private Double valorPrevOficialDEC = 0.0;

    /**
     * Valores de Dependentes RTDP
     */
    @Column(nullable = false)
    private Double valorDependentesJAN = 0.0;
    @Column(nullable = false)
    private Double valorDependentesFEV = 0.0;
    @Column(nullable = false)
    private Double valorDependentesMAR = 0.0;
    @Column(nullable = false)
    private Double valorDependentesABR = 0.0;
    @Column(nullable = false)
    private Double valorDependentesMAI = 0.0;
    @Column(nullable = false)
    private Double valorDependentesJUN = 0.0;
    @Column(nullable = false)
    private Double valorDependentesJUL = 0.0;
    @Column(nullable = false)
    private Double valorDependentesAGO = 0.0;
    @Column(nullable = false)
    private Double valorDependentesSET = 0.0;
    @Column(nullable = false)
    private Double valorDependentesOUT = 0.0;
    @Column(nullable = false)
    private Double valorDependentesNOV = 0.0;
    @Column(nullable = false)
    private Double valorDependentesDEZ = 0.0;
    @Column(nullable = false)
    private Double valorDependentesDEC = 0.0;

    /**
     * Valores de Pensão Alimenticia RTPA
     */
    @Column(nullable = false)
    private Double valorPensAlimenticiaJAN = 0.0;
    @Column(nullable = false)
    private Double valorPensAlimenticiaFEV = 0.0;
    @Column(nullable = false)
    private Double valorPensAlimenticiaMAR = 0.0;
    @Column(nullable = false)
    private Double valorPensAlimenticiaABR = 0.0;
    @Column(nullable = false)
    private Double valorPensAlimenticiaMAI = 0.0;
    @Column(nullable = false)
    private Double valorPensAlimenticiaJUN = 0.0;
    @Column(nullable = false)
    private Double valorPensAlimenticiaJUL = 0.0;
    @Column(nullable = false)
    private Double valorPensAlimenticiaAGO = 0.0;
    @Column(nullable = false)
    private Double valorPensAlimenticiaSET = 0.0;
    @Column(nullable = false)
    private Double valorPensAlimenticiaOUT = 0.0;
    @Column(nullable = false)
    private Double valorPensAlimenticiaNOV = 0.0;
    @Column(nullable = false)
    private Double valorPensAlimenticiaDEZ = 0.0;
    @Column(nullable = false)
    private Double valorPensAlimenticiaDEC = 0.0;

    /**
     * Valores de Imposto Retido RTIRF
     */
    @Column(nullable = false)
    private Double valorImpostoRetidoJAN = 0.0;
    @Column(nullable = false)
    private Double valorImpostoRetidoFEV = 0.0;
    @Column(nullable = false)
    private Double valorImpostoRetidoMAR = 0.0;
    @Column(nullable = false)
    private Double valorImpostoRetidoABR = 0.0;
    @Column(nullable = false)
    private Double valorImpostoRetidoMAI = 0.0;
    @Column(nullable = false)
    private Double valorImpostoRetidoJUN = 0.0;
    @Column(nullable = false)
    private Double valorImpostoRetidoJUL = 0.0;
    @Column(nullable = false)
    private Double valorImpostoRetidoAGO = 0.0;
    @Column(nullable = false)
    private Double valorImpostoRetidoSET = 0.0;
    @Column(nullable = false)
    private Double valorImpostoRetidoOUT = 0.0;
    @Column(nullable = false)
    private Double valorImpostoRetidoNOV = 0.0;
    @Column(nullable = false)
    private Double valorImpostoRetidoDEZ = 0.0;
    @Column(nullable = false)
    private Double valorImpostoRetidoDEC = 0.0;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getAnoExercicio() {
        return anoExercicio;
    }

    public void setAnoExercicio(String anoExercicio) {
        this.anoExercicio = anoExercicio;
    }

    public String getAnoCalendario() {
        return anoCalendario;
    }

    public void setAnoCalendario(String anoCalendario) {
        this.anoCalendario = anoCalendario;
    }

    public String getSigla() {
        return sigla;
    }

    public void setSigla(String sigla) {
        this.sigla = sigla;
    }

    public Beneficiario getBeneficiario() {
        return beneficiario;
    }

    public void setBeneficiario(Beneficiario beneficiario) {
        this.beneficiario = beneficiario;
    }

    public Retencao getRetencao() {
        return retencao;
    }

    public void setRetencao(Retencao retencao) {
        this.retencao = retencao;
    }

    public Double getValorRendimentoJAN() {
        return valorRendimentoJAN;
    }

    public void setValorRendimentoJAN(Double valorRendimentoJAN) {
        this.valorRendimentoJAN = valorRendimentoJAN;
    }

    public Double getValorRendimentoFEV() {
        return valorRendimentoFEV;
    }

    public void setValorRendimentoFEV(Double valorRendimentoFEV) {
        this.valorRendimentoFEV = valorRendimentoFEV;
    }

    public Double getValorRendimentoMAR() {
        return valorRendimentoMAR;
    }

    public void setValorRendimentoMAR(Double valorRendimentoMAR) {
        this.valorRendimentoMAR = valorRendimentoMAR;
    }

    public Double getValorRendimentoABR() {
        return valorRendimentoABR;
    }

    public void setValorRendimentoABR(Double valorRendimentoABR) {
        this.valorRendimentoABR = valorRendimentoABR;
    }

    public Double getValorRendimentoMAI() {
        return valorRendimentoMAI;
    }

    public void setValorRendimentoMAI(Double valorRendimentoMAI) {
        this.valorRendimentoMAI = valorRendimentoMAI;
    }

    public Double getValorRendimentoJUN() {
        return valorRendimentoJUN;
    }

    public void setValorRendimentoJUN(Double valorRendimentoJUN) {
        this.valorRendimentoJUN = valorRendimentoJUN;
    }

    public Double getValorRendimentoJUL() {
        return valorRendimentoJUL;
    }

    public void setValorRendimentoJUL(Double valorRendimentoJUL) {
        this.valorRendimentoJUL = valorRendimentoJUL;
    }

    public Double getValorRendimentoAGO() {
        return valorRendimentoAGO;
    }

    public void setValorRendimentoAGO(Double valorRendimentoAGO) {
        this.valorRendimentoAGO = valorRendimentoAGO;
    }

    public Double getValorRendimentoSET() {
        return valorRendimentoSET;
    }

    public void setValorRendimentoSET(Double valorRendimentoSET) {
        this.valorRendimentoSET = valorRendimentoSET;
    }

    public Double getValorRendimentoOUT() {
        return valorRendimentoOUT;
    }

    public void setValorRendimentoOUT(Double valorRendimentoOUT) {
        this.valorRendimentoOUT = valorRendimentoOUT;
    }

    public Double getValorRendimentoNOV() {
        return valorRendimentoNOV;
    }

    public void setValorRendimentoNOV(Double valorRendimentoNOV) {
        this.valorRendimentoNOV = valorRendimentoNOV;
    }

    public Double getValorRendimentoDEZ() {
        return valorRendimentoDEZ;
    }

    public void setValorRendimentoDEZ(Double valorRendimentoDEZ) {
        this.valorRendimentoDEZ = valorRendimentoDEZ;
    }

    public Double getValorRendimentoDEC() {
        return valorRendimentoDEC;
    }

    public void setValorRendimentoDEC(Double valorRendimentoDEC) {
        this.valorRendimentoDEC = valorRendimentoDEC;
    }

    public Double getValorPrevOficialJAN() {
        return valorPrevOficialJAN;
    }

    public void setValorPrevOficialJAN(Double valorPrevOficialJAN) {
        this.valorPrevOficialJAN = valorPrevOficialJAN;
    }

    public Double getValorPrevOficialFEV() {
        return valorPrevOficialFEV;
    }

    public void setValorPrevOficialFEV(Double valorPrevOficialFEV) {
        this.valorPrevOficialFEV = valorPrevOficialFEV;
    }

    public Double getValorPrevOficialMAR() {
        return valorPrevOficialMAR;
    }

    public void setValorPrevOficialMAR(Double valorPrevOficialMAR) {
        this.valorPrevOficialMAR = valorPrevOficialMAR;
    }

    public Double getValorPrevOficialABR() {
        return valorPrevOficialABR;
    }

    public void setValorPrevOficialABR(Double valorPrevOficialABR) {
        this.valorPrevOficialABR = valorPrevOficialABR;
    }

    public Double getValorPrevOficialMAI() {
        return valorPrevOficialMAI;
    }

    public void setValorPrevOficialMAI(Double valorPrevOficialMAI) {
        this.valorPrevOficialMAI = valorPrevOficialMAI;
    }

    public Double getValorPrevOficialJUN() {
        return valorPrevOficialJUN;
    }

    public void setValorPrevOficialJUN(Double valorPrevOficialJUN) {
        this.valorPrevOficialJUN = valorPrevOficialJUN;
    }

    public Double getValorPrevOficialJUL() {
        return valorPrevOficialJUL;
    }

    public void setValorPrevOficialJUL(Double valorPrevOficialJUL) {
        this.valorPrevOficialJUL = valorPrevOficialJUL;
    }

    public Double getValorPrevOficialAGO() {
        return valorPrevOficialAGO;
    }

    public void setValorPrevOficialAGO(Double valorPrevOficialAGO) {
        this.valorPrevOficialAGO = valorPrevOficialAGO;
    }

    public Double getValorPrevOficialSET() {
        return valorPrevOficialSET;
    }

    public void setValorPrevOficialSET(Double valorPrevOficialSET) {
        this.valorPrevOficialSET = valorPrevOficialSET;
    }

    public Double getValorPrevOficialOUT() {
        return valorPrevOficialOUT;
    }

    public void setValorPrevOficialOUT(Double valorPrevOficialOUT) {
        this.valorPrevOficialOUT = valorPrevOficialOUT;
    }

    public Double getValorPrevOficialNOV() {
        return valorPrevOficialNOV;
    }

    public void setValorPrevOficialNOV(Double valorPrevOficialNOV) {
        this.valorPrevOficialNOV = valorPrevOficialNOV;
    }

    public Double getValorPrevOficialDEZ() {
        return valorPrevOficialDEZ;
    }

    public void setValorPrevOficialDEZ(Double valorPrevOficialDEZ) {
        this.valorPrevOficialDEZ = valorPrevOficialDEZ;
    }

    public Double getValorPrevOficialDEC() {
        return valorPrevOficialDEC;
    }

    public void setValorPrevOficialDEC(Double valorPrevOficialDEC) {
        this.valorPrevOficialDEC = valorPrevOficialDEC;
    }

    public Double getValorDependentesJAN() {
        return valorDependentesJAN;
    }

    public void setValorDependentesJAN(Double valorDependentesJAN) {
        this.valorDependentesJAN = valorDependentesJAN;
    }

    public Double getValorDependentesFEV() {
        return valorDependentesFEV;
    }

    public void setValorDependentesFEV(Double valorDependentesFEV) {
        this.valorDependentesFEV = valorDependentesFEV;
    }

    public Double getValorDependentesMAR() {
        return valorDependentesMAR;
    }

    public void setValorDependentesMAR(Double valorDependentesMAR) {
        this.valorDependentesMAR = valorDependentesMAR;
    }

    public Double getValorDependentesABR() {
        return valorDependentesABR;
    }

    public void setValorDependentesABR(Double valorDependentesABR) {
        this.valorDependentesABR = valorDependentesABR;
    }

    public Double getValorDependentesMAI() {
        return valorDependentesMAI;
    }

    public void setValorDependentesMAI(Double valorDependentesMAI) {
        this.valorDependentesMAI = valorDependentesMAI;
    }

    public Double getValorDependentesJUN() {
        return valorDependentesJUN;
    }

    public void setValorDependentesJUN(Double valorDependentesJUN) {
        this.valorDependentesJUN = valorDependentesJUN;
    }

    public Double getValorDependentesJUL() {
        return valorDependentesJUL;
    }

    public void setValorDependentesJUL(Double valorDependentesJUL) {
        this.valorDependentesJUL = valorDependentesJUL;
    }

    public Double getValorDependentesAGO() {
        return valorDependentesAGO;
    }

    public void setValorDependentesAGO(Double valorDependentesAGO) {
        this.valorDependentesAGO = valorDependentesAGO;
    }

    public Double getValorDependentesSET() {
        return valorDependentesSET;
    }

    public void setValorDependentesSET(Double valorDependentesSET) {
        this.valorDependentesSET = valorDependentesSET;
    }

    public Double getValorDependentesOUT() {
        return valorDependentesOUT;
    }

    public void setValorDependentesOUT(Double valorDependentesOUT) {
        this.valorDependentesOUT = valorDependentesOUT;
    }

    public Double getValorDependentesNOV() {
        return valorDependentesNOV;
    }

    public void setValorDependentesNOV(Double valorDependentesNOV) {
        this.valorDependentesNOV = valorDependentesNOV;
    }

    public Double getValorDependentesDEZ() {
        return valorDependentesDEZ;
    }

    public void setValorDependentesDEZ(Double valorDependentesDEZ) {
        this.valorDependentesDEZ = valorDependentesDEZ;
    }

    public Double getValorDependentesDEC() {
        return valorDependentesDEC;
    }

    public void setValorDependentesDEC(Double valorDependentesDEC) {
        this.valorDependentesDEC = valorDependentesDEC;
    }

    public Double getValorPensAlimenticiaJAN() {
        return valorPensAlimenticiaJAN;
    }

    public void setValorPensAlimenticiaJAN(Double valorPensAlimenticiaJAN) {
        this.valorPensAlimenticiaJAN = valorPensAlimenticiaJAN;
    }

    public Double getValorPensAlimenticiaFEV() {
        return valorPensAlimenticiaFEV;
    }

    public void setValorPensAlimenticiaFEV(Double valorPensAlimenticiaFEV) {
        this.valorPensAlimenticiaFEV = valorPensAlimenticiaFEV;
    }

    public Double getValorPensAlimenticiaMAR() {
        return valorPensAlimenticiaMAR;
    }

    public void setValorPensAlimenticiaMAR(Double valorPensAlimenticiaMAR) {
        this.valorPensAlimenticiaMAR = valorPensAlimenticiaMAR;
    }

    public Double getValorPensAlimenticiaABR() {
        return valorPensAlimenticiaABR;
    }

    public void setValorPensAlimenticiaABR(Double valorPensAlimenticiaABR) {
        this.valorPensAlimenticiaABR = valorPensAlimenticiaABR;
    }

    public Double getValorPensAlimenticiaMAI() {
        return valorPensAlimenticiaMAI;
    }

    public void setValorPensAlimenticiaMAI(Double valorPensAlimenticiaMAI) {
        this.valorPensAlimenticiaMAI = valorPensAlimenticiaMAI;
    }

    public Double getValorPensAlimenticiaJUN() {
        return valorPensAlimenticiaJUN;
    }

    public void setValorPensAlimenticiaJUN(Double valorPensAlimenticiaJUN) {
        this.valorPensAlimenticiaJUN = valorPensAlimenticiaJUN;
    }

    public Double getValorPensAlimenticiaJUL() {
        return valorPensAlimenticiaJUL;
    }

    public void setValorPensAlimenticiaJUL(Double valorPensAlimenticiaJUL) {
        this.valorPensAlimenticiaJUL = valorPensAlimenticiaJUL;
    }

    public Double getValorPensAlimenticiaAGO() {
        return valorPensAlimenticiaAGO;
    }

    public void setValorPensAlimenticiaAGO(Double valorPensAlimenticiaAGO) {
        this.valorPensAlimenticiaAGO = valorPensAlimenticiaAGO;
    }

    public Double getValorPensAlimenticiaSET() {
        return valorPensAlimenticiaSET;
    }

    public void setValorPensAlimenticiaSET(Double valorPensAlimenticiaSET) {
        this.valorPensAlimenticiaSET = valorPensAlimenticiaSET;
    }

    public Double getValorPensAlimenticiaOUT() {
        return valorPensAlimenticiaOUT;
    }

    public void setValorPensAlimenticiaOUT(Double valorPensAlimenticiaOUT) {
        this.valorPensAlimenticiaOUT = valorPensAlimenticiaOUT;
    }

    public Double getValorPensAlimenticiaNOV() {
        return valorPensAlimenticiaNOV;
    }

    public void setValorPensAlimenticiaNOV(Double valorPensAlimenticiaNOV) {
        this.valorPensAlimenticiaNOV = valorPensAlimenticiaNOV;
    }

    public Double getValorPensAlimenticiaDEZ() {
        return valorPensAlimenticiaDEZ;
    }

    public void setValorPensAlimenticiaDEZ(Double valorPensAlimenticiaDEZ) {
        this.valorPensAlimenticiaDEZ = valorPensAlimenticiaDEZ;
    }

    public Double getValorPensAlimenticiaDEC() {
        return valorPensAlimenticiaDEC;
    }

    public void setValorPensAlimenticiaDEC(Double valorPensAlimenticiaDEC) {
        this.valorPensAlimenticiaDEC = valorPensAlimenticiaDEC;
    }

    public Double getValorImpostoRetidoJAN() {
        return valorImpostoRetidoJAN;
    }

    public void setValorImpostoRetidoJAN(Double valorImpostoRetidoJAN) {
        this.valorImpostoRetidoJAN = valorImpostoRetidoJAN;
    }

    public Double getValorImpostoRetidoFEV() {
        return valorImpostoRetidoFEV;
    }

    public void setValorImpostoRetidoFEV(Double valorImpostoRetidoFEV) {
        this.valorImpostoRetidoFEV = valorImpostoRetidoFEV;
    }

    public Double getValorImpostoRetidoMAR() {
        return valorImpostoRetidoMAR;
    }

    public void setValorImpostoRetidoMAR(Double valorImpostoRetidoMAR) {
        this.valorImpostoRetidoMAR = valorImpostoRetidoMAR;
    }

    public Double getValorImpostoRetidoABR() {
        return valorImpostoRetidoABR;
    }

    public void setValorImpostoRetidoABR(Double valorImpostoRetidoABR) {
        this.valorImpostoRetidoABR = valorImpostoRetidoABR;
    }

    public Double getValorImpostoRetidoMAI() {
        return valorImpostoRetidoMAI;
    }

    public void setValorImpostoRetidoMAI(Double valorImpostoRetidoMAI) {
        this.valorImpostoRetidoMAI = valorImpostoRetidoMAI;
    }

    public Double getValorImpostoRetidoJUN() {
        return valorImpostoRetidoJUN;
    }

    public void setValorImpostoRetidoJUN(Double valorImpostoRetidoJUN) {
        this.valorImpostoRetidoJUN = valorImpostoRetidoJUN;
    }

    public Double getValorImpostoRetidoJUL() {
        return valorImpostoRetidoJUL;
    }

    public void setValorImpostoRetidoJUL(Double valorImpostoRetidoJUL) {
        this.valorImpostoRetidoJUL = valorImpostoRetidoJUL;
    }

    public Double getValorImpostoRetidoAGO() {
        return valorImpostoRetidoAGO;
    }

    public void setValorImpostoRetidoAGO(Double valorImpostoRetidoAGO) {
        this.valorImpostoRetidoAGO = valorImpostoRetidoAGO;
    }

    public Double getValorImpostoRetidoSET() {
        return valorImpostoRetidoSET;
    }

    public void setValorImpostoRetidoSET(Double valorImpostoRetidoSET) {
        this.valorImpostoRetidoSET = valorImpostoRetidoSET;
    }

    public Double getValorImpostoRetidoOUT() {
        return valorImpostoRetidoOUT;
    }

    public void setValorImpostoRetidoOUT(Double valorImpostoRetidoOUT) {
        this.valorImpostoRetidoOUT = valorImpostoRetidoOUT;
    }

    public Double getValorImpostoRetidoNOV() {
        return valorImpostoRetidoNOV;
    }

    public void setValorImpostoRetidoNOV(Double valorImpostoRetidoNOV) {
        this.valorImpostoRetidoNOV = valorImpostoRetidoNOV;
    }

    public Double getValorImpostoRetidoDEZ() {
        return valorImpostoRetidoDEZ;
    }

    public void setValorImpostoRetidoDEZ(Double valorImpostoRetidoDEZ) {
        this.valorImpostoRetidoDEZ = valorImpostoRetidoDEZ;
    }

    public Double getValorImpostoRetidoDEC() {
        return valorImpostoRetidoDEC;
    }

    public void setValorImpostoRetidoDEC(Double valorImpostoRetidoDEC) {
        this.valorImpostoRetidoDEC = valorImpostoRetidoDEC;
    }

    @Override
    public int hashCode() {
        int hash = 7;
        hash = 71 * hash + Objects.hashCode(this.id);
        return hash;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final DirfItem other = (DirfItem) obj;
        if (!Objects.equals(this.id, other.id)) {
            return false;
        }
        return true;
    }

}
